package com.justgame.project.service.just.service.basic;

import com.justgame.project.service.just.entity.JustGameType;
import com.justgame.project.service.just.query.JustGameTypeQuery;
import com.justgame.project.service.just.wrapper.JustGameTypeWrapper;
import com.justgame.project.base.servcice.IBasicService;
import org.springframework.util.Assert;
import org.springframework.lang.NonNull;
import java.lang.String;

/**
 *
 * 游戏类型表服务自定义查询类
 *
 * @@tableName just_game_type
 * @author Zwb
 */
@SuppressWarnings("all")
public interface BasicJustGameTypeService extends IBasicService<JustGameTypeQuery,JustGameType,JustGameTypeWrapper> {

   /**
    * 新增创建
    * @param chineseName 中文名称
    * @param englishName 英文名称
    * @param logoType iconfont对应的图标Type类型
    * @param description 描述
    * @param status 状态
    */
   default JustGameType baseAdd(String chineseName, String englishName, String logoType, String description, JustGameType.Status status){
      JustGameType justGameType = new JustGameType();
      justGameType.setChineseName(safeValue(chineseName, null));
      justGameType.setEnglishName(safeValue(englishName, null));
      justGameType.setLogoType(safeValue(logoType, null));
      justGameType.setDescription(safeValue(description, null));
      justGameType.setStatus(safeValue(status, null));
      save(justGameType);
      return justGameType;
   }

   /**
    * 更新
    * @param chineseName 中文名称
    * @param englishName 英文名称
    * @param logoType iconfont对应的图标Type类型
    * @param description 描述
    * @param status 状态
    */
   default boolean baseUpdate(@NonNull JustGameType justGameType,String chineseName, String englishName, String logoType, String description, JustGameType.Status status){
      Assert.notNull(chineseName,"必须提供中文名称");
      Assert.notNull(englishName,"必须提供英文名称");
      Assert.notNull(description,"必须提供描述");
      Assert.notNull(status,"必须提供状态");
      Assert.notNull(logoType,"必须提供iconfont对应的图标Type类型");
      Assert.notNull(justGameType.getId(),"必须提供主键ID");
      justGameType.setChineseName(safeValue(chineseName, null));
      justGameType.setEnglishName(safeValue(englishName, null));
      justGameType.setLogoType(safeValue(logoType, null));
      justGameType.setDescription(safeValue(description, null));
      justGameType.setStatus(safeValue(status, null));
      return updateById(justGameType);
   }

}